package demo.repository;

import demo.entity.UserCompany;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 在职信息 Dao
 *
 * @author 何宇昕
 * @version 1.2
 */
@Repository
public interface UserCompanyRepository extends JpaRepository<UserCompany, Long> {
    /**
     * 按 uid 搜索员工工作经历
     *
     * @param uid 用户 id
     * @return 用户id为uid的用户的工作经历
     */
    List<UserCompany> findUserCompaniesByUid(Long uid);

    /**
     * 按 uid 查找最新的一条 UserCompany 信息
     *
     * @param uid 用户 id
     * @return 用户 id 对应的最新的 UserCompany
     */
    UserCompany findUserCompanyByEndTimeIsNullAndUid(Long uid);

    /**
     * 按 公司 id 查找所有员工最新的 UserCompany 信息
     *
     * @param companyId 公司 id
     * @return 公司对象的数组
     */
    List<UserCompany> findUserCompanyByEndTimeIsNullAndCompanyId(Long companyId);

    List<UserCompany> findUserCompanyByEndTimeIsNullAndCompanyIdAndWorkId(Long companyId, Long workId);

    List<UserCompany> findUserCompaniesByEndTimeIsNullAndDepartmentId(Long departmentId);


    /**
     * 按 用户 id 查找员工最新的 UserCompany 信息
     *
     * @param uid 员工 id
     * @return 工作经历对象的列表
     */
    List<UserCompany> findUserCompanyByUidAndEndTimeIsNull(Long uid);

    List<UserCompany> findUserCompanyByEndTimeIsNull();

    Long countAllByDepartmentIdAndEndTimeIsNull(Long departmentId);

    List<UserCompany> findUserCompaniesByEndTimeIsNullAndCompanyIdAndPosition(Long companyId, String position);
}
